package com.ruoyi.app.service

import com.ruoyi.app.common.Data
import com.ruoyi.app.common.PageData
import com.ruoyi.app.domain.dto.*
import com.ruoyi.app.domain.vo.FunctionIndexVo
import com.ruoyi.app.domain.vo.SingleTemplateMemberInfo
import com.ruoyi.app.domain.vo.UserRecommendListVo
import com.ruoyi.app.domain.vo.UserRecordListVo
import io.swagger.annotations.ApiModel
import io.swagger.annotations.ApiModelProperty

interface RecordApiService {


    @ApiModel("获取单次收费信息参数")
    data class TemplateInfo(
        @ApiModelProperty("模板id")
        var templateId: Long? = null,

        @ApiModelProperty("用户自己上传视频传递: 1.视频 2.图片")
        var type: Int? = null,

        @ApiModelProperty("用户自己上传视频传递: 视频时长 秒为单位")
        var videoDuration: Long? = null
    )


    fun booleanSoftWatermark(channelCode: String): Boolean

    fun booleanAiWatermark(channelCode: String): Boolean

    /**
     * 是否增加隐式水印
     */
    fun booleanHideWatermark(channelCode: String): Boolean

    /**
     * 获取用户作品列表
     */
    fun getUserRecordList(myRecordSearchDto: MyRecordSearchDto) : Data<List<FunctionIndexVo>>

    /**
     * 制作换脸视频
     */
    fun addUserVideoChangeFace(videoChangeFaceDto: VideoChangeFaceDto): Data<Boolean>

    /**
     * 制作图片换脸
     */
    fun addUserPicChangeFace(imageChangeFaceDto: ImageChangeFaceDto): Data<Boolean>


    /**
     * 单次收费会员信息
     */
    fun singleTemplateMemberInfo(templateInfo: TemplateInfo): Data<SingleTemplateMemberInfo?>

    /**
     * 保存用户作品
     */
    fun addUserRecord(myRecordDto: MyRecordDto): Data<Boolean>

    /**
     * 批量移除用户作品
     */
    fun removeUserRecord(ids: String): Data<Boolean>

}